Video surveillance is currently a fast-growing market tending to become increasingly widespread for ubiquitous applications. It can be used today in numerous areas such as crime prevention, private and public areas for security purposes, abnormal events detection, traffic monitoring, customer behaviour, or general data gathering.
Despite an ever-increasing usage, mainstream video-surveillance has strong inherent limitations which lead to poor performance, in particular for solving crimes and offenses, due to the way it is used. Basically, video-surveillance consists in streaming camera footages to be recorded and displayed in real-time to human operators. Unfortunately, only a very limited fraction of camera images can be seen in real-time by humans, the remaining footage recordings being used after-action for batch or forensic activities. However, such a forensic after-action viewing is, in practice, rarely used, both, because it is often too late and useless at this point, and also because it is a time-consuming task to retrieve and track people like offenders across images from several cameras.
To cope with such difficulties, Video Content Analytics software modules (VCAs) have been developed to perform some automatic video analysis so as to trigger alarms, to make video surveillance far more real-time responsive, and to make it easier to exploit the after-action recorded footages, for example for forensic activities or for batch analysis tasks.
VCAs may be implemented within cameras themselves or within remote servers. Due to resource constraints, in particular of limited CPU power, the VCAs embedded within cameras are mainly used for simple tasks such as triggering alarm when virtual fences are crossed or triggering recording through motion detection. More complex tasks such as human searching, tracking and re-identification, 3D position estimation, advanced counting, face recognition, license plate recognition (LPR), gender and age detection, and abnormal behaviour detection can be handled when VCAs are embedded within remote servers.
The performances of the VCAs are directly linked to the conditions in which the images are acquired and to the settings of the VCAs that should be adapted to the scene.
However, it is to be noted that the settings of the VCAs are generally fixed and determined by specialized installers, so as to be finely tuned, which means that each time a VCA is to be re-set, a specialized installer should be present. As a consequence, the settings of the VCAs are not modified as a function of the condition changes. For example, variations related to light conditions (e.g. day/night and rain/sun) and to the number of targets to be identified and/or tracked in images have a huge impact on VCA's performances and resource consumption.
Accordingly, there is a need for a dynamic adaptation of the settings of the VCAs, allowing modification of the settings of the VCAs and/or of the system in real-time so as to get the best from each VCA with the available resources. Such an automatic process is referred to as “dynamic auto-setting” in the following.
There are basically three different approaches for automatically changing the settings of the VCAs:                the possible settings are predetermined and their change is scheduled. It is referred to as an open-loop control;        the possible settings are predetermined and chosen in real-time as a function of the scene analysis. In other words, settings are chosen as a function of a scene classification;        the settings are tuned as a function of measures of VCA's output, in real-time, so as to obtain optimal results. It is referred to as a VCA feedback closed-loop control.        
FIG. 1, comprising FIGS. 1a, 1b, and 1c, illustrates schematically the open-loop control, the scene classifier-based control, and the close-loop control, respectively.
According to the open-loop control, the changes in the environment that have an effect on the scene characteristics, in terms of VCA's behaviour, are predictable and thus, corresponding changes in the settings of the VCAs can be scheduled. For the sake of illustration, the parameters on which changes of the VCA's settings are based can be a day/night indication, sun brightness seasonal statistics, an estimated brightness as obtained from weather forecast, target density estimations based on traffic knowledge or traffic statistics, and a week/weekend day indication.
As illustrated in FIG. 1a, a model is used to calculate the most appropriate values of the settings to be used for one or several VCAs.
A main issue with open-loop control is that open-loop models are known to be efficient only in constrained or predictable environments.
For the scene classifier-based control, determining the values of the settings to be used requires obtaining measures of the scene, characterizing the scene, and using a model making it possible to choose reliably settings of the VCAs as a function of these measures. To be efficient, the measures may need to be obtained through dedicated sensors which increase the costs of the system.
As illustrated in FIG. 1b, a model is used to identify, as a function of environment measurements, the settings to be used for one or several VCAs. According to particular implementations, the models may be modified or may learn from VCA's behaviour.
The closed-loop control requires a controller and VCA feedbacks. VCA feedbacks comprise real-time information directed to resource consumption, that is easy to obtain, and VCA accuracy, that is difficult to measure (it results from comparing VCA results to an absolute reference referred to as a ground truth). As illustrated in FIG. 1c, the controller changes VCA's settings as a function of the measured VCA's output. There exist several types of controllers for closed-loop control:                offline model-based controllers which are able to steer a system optimally by using a robust model which was derived offline beforehand;        adaptive model-based controllers which are able to draw or modify a model in-situ as a function of some measurements; and        simple model-based controllers (since the closed-loop control is robust, approximate models or even no model can be used).        
However, in reason of the complexity of the VCAs and their intricate dependency on the environment, the models that are required for open-loop control, scene-classifier-based control and closed-loop control (including the most simple models) are either too complex, or are useless without minimal knowledge of VCA's behaviour. Moreover, they are very difficult to link to realistic measurements of environment.
Furthermore, it is to be noted that a realistic dynamic VCA auto-setting or parametrization solution has to work in real-time. Thus, the dynamic auto-setting layer itself should use a negligible amount of resources as compared to the VCAs themselves since the aim of using specific settings is generally to get a maximum accuracy from VCAs with a limited amount of available resources.
Accordingly, all the known solutions have drawbacks and thus, there is a need to improve these solutions.